package com.csun.cmny.provider.service;

import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcRfidLabelOldman;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.dto.rfid.BindDmcRfidLabelOldmanDto;
import com.csun.cmny.provider.model.dto.rfid.RfidLabelPageQuery;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import com.csun.cmny.provider.model.vo.rfid.DmcRfidLabelVo;
import com.csun.cmny.provider.model.vo.RfidLabelReqVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-01-21 20:41
 * @Description: the interface dmc rfid label oldman service
 */
public interface DmcRfidLabelOldmanService extends IService<DmcRfidLabelOldman> {

    /**
     * bind dmc rfid label oldman
     *
     * @param bindDmcRfidLabelOldmanDto bind dmc rfid label oldman dto
     *
     * @return  the int
     */
    Integer bindDmcRfidLabelOldman(BindDmcRfidLabelOldmanDto bindDmcRfidLabelOldmanDto);

    /**
     * break dmc rfid label oldman by device id
     *
     * @param deviceId  device id
     *
     * @return  the int
     */
    Integer breakDmcRfidLabelOldmanByDeviceId(Long deviceId);

    /**
     * break dmc rfid label oldman by oldman id
     *
     * @param oldmanId  oldman id
     *
     * @return  the int
     */
    Integer breakDmcRfidLabelOldmanByOldmanId(Integer oldmanId);

    /**
     * query rfid label list with page
     *
     * @param rfidLabelPageQuery    rfid label page query
     *
     * @return  the page info.
     */
    PageInfo queryRfidLabelListWithPage(RfidLabelPageQuery rfidLabelPageQuery);

    /**
     * query rfid label by oldman id list
     *
     * @param oldmanIdList  oldman id list
     *
     * @return  the list.
     */
    List<RfidLabelReqVo> queryRfidLabelByOldmanIds(List<Integer> oldmanIdList);

    /**
     * select rfid label by rfid label no
     *
     * @param labelNo   the rfid label no
     *
     * @return  the dmc rfid label vo
     */
    DmcRfidLabelVo selectByRfidLabelNo(String labelNo);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}
